Many enterprises (e.g., corporations, partnerships, governments, academic institutions, other organizations, etc.) are now using virtualization and clouds of computing resources to fulfill their information technology and computing needs. Cloud service providers (CSP) can deliver cloud-based computing services (e.g., Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS), and storage services) by providing the ability to create virtual servers on demand. Such virtual servers can have defined attributes such as an operating system, installed software applications and services, and the like. The virtualization technology used by the cloud service providers allows a single virtual server to deploy one or more remote desktop services (RDS) sessions to one or more users simultaneously. The multiple sessions in the virtual server may be kept separate, such that the activities of one user in one session may not affect the experiences of other users. In some instances, enterprises may prefer a higher level of isolation by requiring that each virtual server may only serve users from their particular enterprise.
Currently, cloud service providers, which host desktops and applications for their customers or tenants, can offer services with different levels of tenant isolation. Two common levels of tenant isolation are shared and private. In shared mode, multiple tenants may share a single catalog of virtual servers, and each virtual server may host users from multiple tenants. Shared mode offers only session-level isolation across tenants. This mode is typically the least expensive option because it offers the best user density across the virtual servers provisioned by the cloud service provider. In private mode, each tenant is assigned a separate catalog of virtual servers, and each virtual server may only host users from the particular tenant. Private mode offers better security and machine-level isolation across tenants but a higher cost as it requires the cloud service provider to provision a larger amount of virtual servers to serve the same number of tenants.